/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.uca.dss.curso2011.grupo1.interfaz;


import java.util.List;
import org.joda.time.LocalDate;
import org.joda.time.LocalTime;
import org.uca.dss.curso2011.grupo1.clases.Hora;
import org.uca.dss.curso2011.grupo1.clases.Reserva;
import org.uca.dss.curso2011.grupo1.clases.ControlaListado;



/**
 * Clase que implementa la interfaz de listados.
 * @author Alejandro & David
 */
public class Listados implements InterfazListados {


    private Estado estado;

    /**
     * Constructor de la clase Listados.
     * @param horas Listado de las horas de los trayectos.
     * @param reservas Listado de las reservas del sistema.
     */
    public Listados(List<Hora> horas, List<Reserva> reservas){
           this.estado = new Estado(horas, reservas);
    }
    /**
     * Función que obtiene los horarios disponibles del trayecto solicitado en la fecha indicada.
     * @param origen Ciudad de origen del trayecto.
     * @param destino Ciudad destino del trayecto.
     * @param fecha Fecha en la que se quiere realizar el trayecto.
     * @return Los horarios disponibles para el trayecto solicitado.
     */
    public List<LocalTime> getHorarios(String origen, String destino, LocalDate fecha) {

            ControlaListado listadocontrol = new ControlaListado(obtieneEstado().obtieneHoras(), obtieneEstado().obtieneReservas());
            return listadocontrol.buscaViaje(origen, destino, fecha);
    }

    /**
     * Método que devuelve el estado del sistema.
     * @return estado
     */
    public Estado obtieneEstado() {
        return this.estado;
    }

}
